package com.zhu.library_management_system.util;

import com.zhu.library_management_system.jwt.TokenService;
import org.springframework.stereotype.Component;

import java.util.concurrent.ConcurrentHashMap;

@Component
public class VerifyLoginUtil {

    // 黑名单缓存（键：Token，值：过期时间）
    private static final ConcurrentHashMap<String, Long> blackList = new ConcurrentHashMap<>();

    /**
     * 将Token加入黑名单（注销）
     * @param token 需要注销的Token
     * @param expireTime 过期时间（毫秒）
     */
    public static void releaseToken(String token, long expireTime) {
        blackList.put(token, System.currentTimeMillis() + expireTime);
    }
    /**
     * 检查Token是否有效
     * @param token 需要验证的Token
     * @return 是否有效
     */
    public static boolean isTokenValid(String token) {
        // 1. 检查黑名单
        Long blacklistedTime = blackList.get(token);
        if (blacklistedTime != null) {
            return true; // Token在黑名单
        }
        return false;
    }

    public static Integer verifyLogin(String token) {
        Integer userId = TokenService.parseUserId(token.replace("Bearer ", ""));
        if (userId == null) {
            return null;
        }
        return userId;
    }
}
